﻿using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;


namespace TCKQKL.Service.DataContract
{
    /// <summary>
    /// Bank account information (usually associate with one investor)
    /// </summary>
    [DataContract()]
    public sealed class BankDataModel
    {
        private string _bankAccount;
        private string _bankName;
        private decimal _tradingAmount;
        private decimal _trustedAmount;
        private decimal _nettingAmount;
        private decimal _blockAmount;
        private DateTime _openDate;
        private DateTime _lastModified;        

        public BankDataModel()
        {

        }
        public BankDataModel(string bankAccount, string bankName, decimal tradingAmount, decimal trustedAmount, decimal nettingAmount, decimal blockAmount, DateTime openDate, DateTime lastModified)
        {
            this._bankAccount = bankAccount;
            this._bankName = bankName;
            this._tradingAmount = tradingAmount;
            this._trustedAmount = trustedAmount;
            this._nettingAmount = nettingAmount;
            this._blockAmount = blockAmount;
            this._openDate = openDate;
            this._lastModified = lastModified;
        }
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "bankAccount", Order = 1, IsNullable = false)]
        [DataMember(IsRequired = false, Name = "bankAccount", Order = 1)]
        public string bankAccount
        {
            // Properties
            get { return _bankAccount; }
            set { this._bankAccount = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(ElementName = "bankName", Order = 2, IsNullable = false)]
        [DataMember(IsRequired = false, Name = "bankName", Order = 2)]
        public string bankName
        {
            // Properties
            get { return _bankName; }
            set { this._bankName = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(ElementName = "tradingAmount", Order = 3, IsNullable = false)]
        [DataMember(IsRequired = false, Name = "tradingAmount", Order = 3)]
        public decimal tradingAmount
        {
            // Properties 
            get { return _tradingAmount; }
            set { this._tradingAmount = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(ElementName = "trustedAmount", Order = 4, IsNullable = false)]
        [DataMember(IsRequired = false, Name = "trustedAmount", Order = 4)]
        public decimal trustedAmount
        {
            // Properties
            get { return _trustedAmount; }
            set { this._trustedAmount = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(ElementName = "nettingAmount", Order = 5, IsNullable = false)]
        [DataMember(IsRequired = false, Name = "nettingAmount", Order = 5)]
        public decimal nettingAmount
        {
            // Properties
            get { return _nettingAmount; }
            set { this._nettingAmount = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(ElementName = "blockAmount", Order = 6, IsNullable = false)]
        [DataMember(IsRequired = false, Name = "blockAmount", Order = 6)]
        public decimal blockAmount
        {
            // Properties
            get { return _blockAmount; }
            set { this._blockAmount = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(ElementName = "openDate", Order = 7, IsNullable = false)]
        [DataMember(IsRequired = false, Name = "openDate", Order = 7)]
        public DateTime openDate
        {
            // Properties
            get { return _openDate; }
            set { this._openDate = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(ElementName = "lastModified", Order = 8, IsNullable = false)]
        [DataMember(IsRequired = false, Name = "lastModified", Order = 8)]
        public DateTime lastModified
        {
            // Properties
            get { return _lastModified; }
            set { this._lastModified = value; }
        }

    }
}
